package cn.kgc.feign;

import cn.kgc.entity.Users;
import cn.kgc.grace.result.GraceJSONResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Collections;

/**
 * @author YC
 * 远程调用用户接口，如果用户服务出现问题执行当前类中的降级方法
 * RT规则：接口1s中有超过5个请求失败，且接口的平均相应时间大于设置的阈值，则在设置的时间内都直接进行熔断降级处理（不调用远程接口，调用此类中降级方法）
 */
@Slf4j
@Component
public class UserFeignClientImpl implements UserFeignClient {

    @Override
    public GraceJSONResult getCompanyIdByUserId(String userId) {
        return GraceJSONResult.ok("");
    }

    @Override
    public GraceJSONResult userIdList(String userName) {
        return GraceJSONResult.ok(Collections.emptyList());
    }

    @Override
    public GraceJSONResult updateUserRole(String commitUserId, String companyId) {
        return GraceJSONResult.error();
    }

    @Override
    public GraceJSONResult detail(String userId) {
        log.error("用户服务出现异常，执行降级方法！！！！！！！！！！！！！！！！！！！！！！！！");
        return GraceJSONResult.ok(new Users());
    }

}
